1. Field
The present disclosure generally relates to apparatus and methods using a linear memory model for encoder output buffers and, more particularly, to utilizing a linear or sequential memory model in a control channel encoder output buffer handling extended frame transmissions to reduce complexity of the encoder output memory design.
2. Background
In some wireless communication systems, media access control (MAC) layer packets to be transmitted over a wireless network are first split into subpackets. The subpackets are fed into an encoder to be encoded, interleaved and repeated. The output bit stream for each subpacket, called a codeword, may be up to 5 times longer than the subpacket. The codeword is then transmitted across multiple Hybrid Automatic Repeated Request (HARQ) transmissions with repetition if necessary. The HARQ transmissions are, in general, separated by a length of time. For example, in HARQ8, the codeword is transmitted once every 8 frames. For each transmitted frame, only partial bits of entire codeword are transmitted.
In conventional designs, an entire encoded codeword or operation is stored in an encoder memory or buffer. This design requires that the total memory be at least 5 times the sum of length of all incoming MAC packets. For example in the forward link dedicated channel (FLDCH) transmission for Ultra Mobile Broadband (UMB) systems, assuming worst case numbers (e.g., the highest packet format for all the tiles (128), 4 layers and an HARQ interlace depth of 8 frames), the conventional design requires around 25 Mbit of on-chip memory.
In a proposed solution to reduce memory size, an entire codeword is not store, but rather the encoder is run again to regenerate the entire codeword and save only the bits required for a particular HARQ frame transmission. Thus, even though the encoder reruns for all HARQ transmissions, it does not increase the peak million of instructions per second (MIPS) budget of the encoder, and is flexible to handle any number of HARQ transmissions.
An output of the encoder is used by a multiplexer (mux) engine to paint the channel resources, such as FLDCH resources as an example. The encoder will always provide enough bits for each subpacket. However in the case when a portion of the FLDCH resource is occupied by some other channels, the mux engine might not use all the bits provided for a subpacket. To handle such cases, a set of bit stream state variables for each subpacket is maintained. In particular, the bit stream state variables may be initialized by the encoder at the start of the first frame (i.e., HARQ frame) transmission, and subsequently updated by the mux engine at the end of each transmission. While encoding the data for each transmission, the encoder uses these variables to locate the part of the codeword to be written to memory for each subpacket. The maintenance of state variables by the mux engine simplifies the design of the encoder because it does not require knowledge of any other channels which overlaps with the FLDCH resource (ex. CQI, Beacon, etc).
It is noted that the encoder in the above design is always working on operations or assignments scheduled for the next frame, while the mux engine is working on the current frame. Thus, in the case when an assignment or operation is spread across contiguous frames, such as in extended frame transmissions, (extended or elongated frames), the encoder will not have up-to-date state variable information from the mux engine. In this case, the encoder may be configured based on an assumption of some worst case numbers for the bit stream state variables, and provides some extra bits for each subpacket. By the time the mux engine gets to the next frame, the bit stream state variables will be updated and used to select only the appropriate bits.
In a particular example of UMB FLDCH extended frame transmission, one FLDCH assignment will transmit three frames in a row. A conventional encoder design is configured to generate three frames worth of encoded bits and save them in the encoder output memory or buffer. However, this scheme results in encoded bits from different assignments or operation having different life span. For example, encoded bits from a non-extended transmission assignment or operation will last only one frame, whereas encoded bits from an extended transmission assignment will last for two or more frames. This disparity in life span of bits stored in the memory results in a great deal of complication for the design and operation of the encoder output memory. Accordingly, an encoder output memory or buffer design that reduces the complexity, while still affording efficient encoder operation